package utils

import (
	"errors"
	models "yuanaiproblem/dao/model"
	"yuanaiproblem/migrations/db"

	"gorm.io/gorm"
)

// handleUserQueryError 处理用户查询过程中的错误
func HandleUserQueryError(err error) (*models.User, error) {
	if errors.Is(err, gorm.ErrRecordNotFound) {
		return nil, errors.New("用户不存在")
	}
	return nil, errors.New("查询数据库失败: " + err.Error())
}

// validateUserCredentials 验证用户名和密码格式
func ValidateUserCredentials(username, password string) error {
	if len(username) < 3 || len(username) > 50 {
		return errors.New("用户名长度必须为3-50位")
	}
	if len(password) < 6 {
		return errors.New("密码长度不能少于6位")
	}
	return nil
}

// isUsernameExists 检查用户名是否已存在
func IsUsernameExists(username string) (bool, error) {
	var count int64
	if err := db.DB.Model(&models.User{}).
		Where("username = ?", username).
		Count(&count).Error; err != nil {
		return false, errors.New("查询用户名失败: " + err.Error())
	}
	return count > 0, nil
}
